package com.lin.generate.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lin.generate.common.base.PageReqVO;
import com.lin.generate.common.dto.UserDataSourceKey;
import com.lin.generate.common.vo.request.DataSourceConfigReqVO;
import com.lin.generate.common.vo.response.DataSourceVO;
import com.lin.generate.common.vo.response.DataSourceConfigRespVO;
import com.lin.generate.entity.ZlDataSourceConfig;

/**
 * 数据源配置 服务类
 *
 * @author zhaolin
 * @date 2023-06-04
 */
public interface IZlDataSourceConfigService extends IService<ZlDataSourceConfig> {

    /**
     * 新增数据源配置
     *
     * @param vo
     * @return
     */
    Boolean save(DataSourceConfigReqVO vo);

    /**
     * 修改数据源配置
     *
     * @param vo
     * @return
     */
    Boolean update(DataSourceConfigReqVO vo);

    /**
     * 分页查询数据源配置
     *
     * @param pageReqVO
     * @param vo
     * @return
     */
    IPage<DataSourceConfigRespVO> pageList(PageReqVO pageReqVO, DataSourceConfigReqVO vo);

    /**
     * 查询数据源配置详情
     *
     * @param id
     * @return
     */
    DataSourceConfigRespVO getObjectById(Long id);

    /**
     * 获取数据源对象
     * @param key
     * @return
     */
    DataSourceVO getDataSource(UserDataSourceKey key);
}
